+------------------------------------------------+
| SnakeBYTE Applesoft / ML Source - May 25, 2005 |
| Copyright 2005 Craig Bower - Distribute Freely |
+------------------------------------------------+

]CAT

/SNAKE                                 

 NAME           TYPE  BLOCKS  MODIFIED 

*PRODOS          SYS      35   6-MAY-93
*BASIC.SYSTEM    SYS      21   6-DEC-91
*STARTUP         BAS      33  25-MAY-05

BLOCKS FREE:  184     BLOCKS USED:   96

                                       
]LOAD STARTUP

]LIST

 100  REM  *
 110  REM  *   Snake Byte
 120  REM  * By Craig Bower
 130  REM  *
 140  REM  *    10/29/91
 150  REM  *
 160  REM  *   Retyped and
 170  REM  * updated for the
 180  REM  * 2e/2c emulators
 190  REM  * Dec. 18th, 1998
 200  REM  *
 210  REM  *  Revised Again
 220  REM  *  Nov 21st, 2003
 230  REM  * Sept 12th, 2004
 240  REM  *  Nov 14th, 2004
 250  REM  *  May 25th, 2005
 260  REM  *
 270  REM  * e-mail:
 280  REM  * -------
 290  REM  * omni@
 300  REM  * turbo-2.com
 310  REM  *
 320  REM  * URL address:
 330  REM  * ------------
 340  REM  * http://
 350  REM  * www.turbo-2.com
 360  REM  * /apple/
 370  REM  *
 380  REM  * Controls/Cheats
 390  REM  *
 400  REM  * arrow keys and/or
 410  REM  * the paddle buttons
 420  REM  * to turn the snake
 430  REM  * left or right.
 440  REM  *
 450  REM  * @ = decr apples
 460  REM  * # = add snakes
 470  REM  * L = level select
 480  REM  * 0 = add points
 490  REM  * esc = pause
 500  REM  *
 510  REM  * ctrl-C >> esc
 520  REM  * to exit to ]  
 530  REM  *
 540  ONERR  GOTO 4930
 550 UY = 1: GOTO 2570
 560 D =  SCRN( XX,YY): COLOR= D: PLOT XX,YY
 570  COLOR= 0: PLOT XX,YY
 580  IF D = 1 THEN YY = YY - 1
 590  IF D = 2 THEN XX = XX + 1
 600  IF D = 3 THEN YY = YY + 1
 610  IF D = 4 THEN XX = XX - 1
 620  RETURN 
 630 D =  SCRN( X,Y)
 640  IF D = 9 THEN  GOSUB 670
 650  IF D <  > 9 THEN  GOSUB 910
 660  RETURN 
 670  POKE 768,75: POKE 769,PD + 3: CALL 770
 680  POKE 768,180: POKE 769,PD + 3: CALL 770
 690  IF PF > 3 THEN PF = 0:BB = 0
 700  COLOR= 6: VLIN 0,39 AT 39: COLOR= DI
 710  IF PF > 0 THEN PF = PF + 1:L = L + 1:CA = CA - 1:PP = PP - 50: GOSUB 1110: GOSUB 1370: RETURN 
 720 L = L + B:CA = CA - 1: GOSUB 1110
 730 PP = PP - 50: IF PP < 0 THEN PP = 0
 740  IF CA =  > 1 THEN  GOSUB 1190: GOSUB 1370: RETURN 
 750  GOSUB 1110: GOSUB 1370
 760 P$ = "Level " +  STR$ (B) + " complete!":PX = 4:PY = 23: GOSUB 3660
 770  FOR I = 1 TO 1500: NEXT I
 780 B = B + 1: IF B > 25 THEN B = 1
 790 NA = NA + 1: IF NA > 15 THEN NA = 15
 800 CA = NA:X = 20:Y = 38:XX = 20:YY = 38:C = 0:L = 10
 810  IF B > 5 THEN L = 15
 820  IF B > 3 THEN SN = SN + 1
 830  COLOR= 0
 840  GOSUB 1110: GOSUB 5000
 850  GOSUB 1490
 860 P$ = "                   ":PX = 4:PY = 23: GOSUB 3660
 870  GOSUB 1190
 880 PP = 0
 890  POP : POP : GOTO 3870
 900  RETURN 
 910  CALL  - 1059
 920 PP = 0:PF = 0:BB = 0
 930  COLOR= 6: VLIN 0,39 AT 39: COLOR= DI
 940 SN = SN - 1:P$ = "  CRASHED!  ": INVERSE :PX = 6:PY = 23: GOSUB 3660: NORMAL :P$ = "            "
 950  POKE  - 16368,0
 960  IF SN < 0 THEN 1220
 970  FOR I = 1 TO 1500: NEXT I
 980 CA = NA + 2:L = 10:C = 0:X = 20:Y = 38:XX = 20:YY = 38:DI = 1: GOSUB 1110
 990  GOSUB 5000
 1000  GOSUB 1490
 1010  GOSUB 1190
 1020  GOSUB 3660
 1030  POP : RETURN 
 1040  POKE 768,10: POKE 769,10: CALL 770: POKE 768,5: POKE 769,5: CALL 770
 1050  IF BB = 1 THEN PP = 0: RETURN 
 1060 PP = 0:CA = CA + 3: FOR I = 1 TO 3: GOSUB 1190: NEXT I: GOSUB 1110:BB = 1
 1070 PF = 1
 1080  COLOR= 6: VLIN 0,39 AT 39
 1090 L = C + 2
 1100  RETURN 
 1110  VTAB 21: HTAB 39: IF CA < 10 THEN  PRINT "0";CA;
 1120  VTAB 21: HTAB 39: IF CA < 10 THEN  PRINT "0";CA;
 1130  IF CA =  > 10 THEN  PRINT CA;" ";
 1140  VTAB 22: HTAB 39: IF SN < 10 THEN  PRINT "0";SN;
 1150  IF SN =  > 10 THEN  PRINT SN;" ";
 1160  VTAB 23: HTAB 39: IF B < 10 THEN  PRINT "0";B;
 1170  IF B =  > 10 THEN  PRINT B;" ";
 1180  RETURN 
 1190 Q =  INT ( RND (1) * 39) + 1:W =  INT ( RND (1) * 39) + 1: IF  SCRN( Q,W) <  > 0 THEN 1190
 1200  COLOR= 9: PLOT Q,W
 1210  RETURN 
 1220 A$ = "  GAME OVER!  ":S$ = "               "
 1230  POKE  - 16368,0: CALL 16023
 1240  IF SC > ZR THEN  VTAB 24: HTAB 12: PRINT "      ";: INVERSE : VTAB 21: HTAB 13: PRINT  INT (SC);:ZR =  INT (SC): NORMAL 
 1250  FOR A = 1 TO 3
 1260 PX = 5:PY = 23:P$ = S$: NORMAL : GOSUB 3660:P$ = A$: INVERSE : GOSUB 3660
 1270  NEXT A: NORMAL :EE = 0
 1280  IF EE = 250 THEN  POKE  - 16368,0: GOTO 1330
 1290  IF  PEEK ( - 16287) > 128 THEN 1330
 1300  IF  PEEK ( - 16286) > 128 THEN 1330
 1310  IF  PEEK ( - 16384) < 127 THEN EE = EE + 1: GOTO 1280
 1320  GET A$:A$ = "": POKE  - 16368,0
 1330  GOSUB 5000
 1340 P$ = S$: GOSUB 3660
 1350 EE = 0
 1360  POP : POP : GOTO 3770
 1370 SC =  INT (SC)
 1390  IF SC > ZR THEN  VTAB 21: HTAB 12: PRINT "      ";
 1400 SC = SC + (9 + B): IF SC > ZR THEN ZR =  INT (SC): VTAB 21: HTAB 13: INVERSE : PRINT ZR;: NORMAL 
 1410  VTAB 21: HTAB 25
 1420  INVERSE : IF CA < 4 AND CA > 0 THEN  FLASH 
 1430  IF SC < 10 THEN  PRINT "0000";SC;: NORMAL : RETURN 
 1440  IF SC < 100 THEN  PRINT "000";SC;: NORMAL : RETURN 
 1450  IF SC < 1000 THEN  PRINT "00";SC;: NORMAL : RETURN 
 1460  IF SC < 10000 THEN  PRINT "0";SC;: NORMAL : RETURN 
 1470  IF SC > 10000 THEN  PRINT SC;" ";: NORMAL 
 1480  RETURN 
 1490  COLOR= 15
 1500  ON B GOSUB 1520,1550,1580,1610,1640,1670,1720,1770,1810,1840,1870,1900,1950,2000,2050,2080,2110,2160,2200,2240,2270,2310,2350,2390,2440
 1510  RETURN 
 1520  REM  * L1
 1530  HLIN 5,35 AT 20
 1540  RETURN 
 1550  REM  * L2
 1560  VLIN 5,26 AT 20
 1570  RETURN 
 1580  REM  * L3
 1590  VLIN 5,26 AT 20: HLIN 5,35 AT 20
 1600  RETURN 
 1610  REM  * L4
 1620  HLIN 10,30 AT 30: HLIN 5,18 AT 5: HLIN 22,35 AT 5: VLIN 5,30 AT 5: VLIN 5,30 AT 35
 1630  RETURN 
 1640  REM  * L5
 1650  HLIN 4,30 AT 10: HLIN 10,36 AT 30: VLIN 4,26 AT 10: VLIN 15,36 AT 30
 1660  RETURN 
 1670  REM  * L6
 1680  FOR I = 5 TO 34: PLOT I,I: PLOT I,39 - I: NEXT I
 1690  COLOR= 0: PLOT 10,10: PLOT 11,11: PLOT 25,25: PLOT 26,26
 1700  VLIN 1,38 AT 20: VLIN 1,38 AT 21: VLIN 1,38 AT 19: VLIN 1,38 AT 18
 1710  RETURN 
 1720  REM  * L7
 1730  HLIN 5,7 AT 4: HLIN 13,34 AT 4: VLIN 4,31 AT 5: VLIN 4,31 AT 34: HLIN 5,26 AT 31: PLOT 10,4: PLOT 29,31: HLIN 32,34 AT 31
 1740  HLIN 6,34 AT 17: VLIN 5,30 AT 20
 1750  COLOR= 0: HLIN 18,22 AT 17: VLIN 15,19 AT 20
 1760  RETURN 
 1770  REM  * L8
 1780  HLIN 6,34 AT 17: HLIN 6,20 AT 31: HLIN 20,34 AT 4: VLIN 5,31 AT 20
 1790  VLIN 17,27 AT 6: VLIN 8,17 AT 34
 1800  RETURN 
 1810  REM  * L9
 1820  VLIN 5,15 AT 35: VLIN 5,15 AT 5: HLIN 5,35 AT 5: HLIN 5,35 AT 30: HLIN 5,15 AT 15: VLIN 20,30 AT 35: VLIN 20,30 AT 5: HLIN 25,35 AT 15: HLIN 9,32 AT 20
 1830  RETURN 
 1840  REM  * L10
 1850  FOR I = 5 TO 25 STEP 5: HLIN 5,34 AT I: NEXT I: VLIN 5,10 AT 5: VLIN 10,15 AT 34: VLIN 15,20 AT 5: VLIN 20,25 AT 34
 1860  RETURN 
 1870  REM  * L11
 1880  FOR I = 5 TO 17 STEP 4: FOR J = 5 TO 17 STEP 4: PLOT I,J: PLOT 39 - I,39 - J: NEXT J,I
 1890  RETURN 
 1900  REM  * L12
 1910  FOR I = 1 TO 30:U =  INT ( RND (1) * 38) + 1:O =  INT ( RND (1) * 29) + 1: VLIN O,O + 5 AT U: NEXT I
 1920  COLOR= 0: VLIN 20,38 AT 20
 1930  HLIN 1,38 AT 1: HLIN 1,38 AT 38: VLIN 1,38 AT 1: VLIN 1,38 AT 38
 1940  RETURN 
 1950  REM  * L13
 1960  FOR I = 1 TO 30:U =  INT ( RND (1) * 33) + 1:G =  INT ( RND (1) * 37) + 1: HLIN U,U + 5 AT G: NEXT I
 1970  COLOR= 0: VLIN 20,38 AT 20
 1980  HLIN 1,38 AT 1: HLIN 1,38 AT 38: VLIN 1,38 AT 1: VLIN 1,38 AT 38
 1990  RETURN 
 2000  REM  * L14
 2010  FOR I = 6 TO 23: PLOT I,I: PLOT I + 12,I: NEXT I
 2020  FOR I = 6 TO 26: PLOT I,39 - I: NEXT I
 2030  COLOR= 0: HLIN 2,38 AT 15: HLIN 2,38 AT 16: HLIN 3,9 AT 33
 2040  RETURN 
 2050  REM  * L15
 2060  FOR I = 5 TO 15 STEP 3: HLIN I,39 - I AT I: HLIN I,39 - I AT 39 - I: VLIN I,39 - I AT I: NEXT I: COLOR= 0: FOR I = 18 TO 22: VLIN 2,37 AT I: NEXT I
 2070  RETURN 
 2080  REM  * L16
 2090  HLIN 5,35 AT 5: VLIN 5,25 AT 35: HLIN 5,35 AT 25: VLIN 10,25 AT 5: HLIN 5,30 AT 10: VLIN 10,20 AT 30: HLIN 10,30 AT 20: VLIN 15,20 AT 10: HLIN 10,25 AT 10
 2100  RETURN 
 2110  REM  * L17
 2120  FOR I = 1 TO 18 STEP 2: PLOT I,I: PLOT 39 - I,39 - I: NEXT I
 2130  HLIN 5,10 AT 5: HLIN 25,30 AT 30
 2140  COLOR= 0: VLIN 1,38 AT 20
 2150  RETURN 
 2160  REM  * L18
 2170  HLIN 15,25 AT 15: HLIN 15,25 AT 25: VLIN 15,25 AT 15: VLIN 15,25 AT 25
 2180  COLOR= 0: HLIN 1,28 AT 20: VLIN 1,28 AT 20
 2190  RETURN 
 2200  REM  * L19
 2210  HLIN 15,25 AT 15: HLIN 15,25 AT 25: VLIN 15,25 AT 15: VLIN 15,25 AT 25: FOR I = 1 TO 15 STEP 2: PLOT I,I: PLOT 39 - I,39 - I: NEXT I: COLOR= 0: VLIN 1,38 AT 20: PLOT 24,24
 2220  COLOR= 0: VLIN 1,38 AT 20
 2230  RETURN 
 2240  REM  * L20
 2250  HLIN 3,36 AT 3: VLIN 3,36 AT 3: HLIN 23,36 AT 36: VLIN 23,36 AT 36
 2260  RETURN 
 2270  REM  * L21
 2280  HLIN 3,36 AT 3: VLIN 3,36 AT 3: HLIN 23,36 AT 36: VLIN 23,36 AT 36: HLIN 15,25 AT 15: HLIN 15,25 AT 25: VLIN 15,25 AT 15: VLIN 15,25 AT 25
 2290  COLOR= 0: VLIN 5,38 AT 20
 2300  RETURN 
 2310  REM  * L22
 2320  HLIN 3,36 AT 25: VLIN 3,36 AT 25: HLIN 23,36 AT 3: VLIN 23,36 AT 3: HLIN 15,25 AT 15: HLIN 15,25 AT 25: VLIN 15,25 AT 15: VLIN 15,25 AT 25
 2330  COLOR= 0: VLIN 2,38 AT 20
 2340  RETURN 
 2350  REM  * L23
 2360  HLIN 2,37 AT 2: VLIN 2,36 AT 2: VLIN 2,36 AT 37: HLIN 2,37 AT 36
 2370  COLOR= 0: VLIN 36,38 AT 20: VLIN 36,38 AT 21: VLIN 36,38 AT 19
 2380  RETURN 
 2390  REM  * L24
 2400  HLIN 3,36 AT 3: VLIN 3,36 AT 3: VLIN 3,36 AT 36: HLIN 3,36 AT 36
 2410  FOR I = 3 TO 36 STEP 3: FOR J = 3 TO 36 STEP 3: PLOT I,J: NEXT J,I
 2420  COLOR= 0: VLIN 2,38 AT 19: VLIN 2,38 AT 20
 2430  RETURN 
 2440  REM  * L25
 2450  FOR II = 1 TO 3
 2460 P$ = "  LEVEL 25 YOU WIN!  ":PX = 3:PY = 23: INVERSE : GOSUB 3660
 2470 P$ = "                     ": NORMAL : GOSUB 3660
 2480  NEXT II
 2490  RETURN 
 2500  INVERSE 
 2510 P$ = "  ESC - PAUSED  ":PX = 5:PY = 23: GOSUB 3660:P$ = "                 ": NORMAL 
 2520  POKE  - 16368,0
 2530  IF  PEEK ( - 16384) < 127 THEN 2530
 2540  GET A$: IF A$ <  >  CHR$ (27) THEN 2530
 2550  GOSUB 3660
 2560  RETURN 
 2570  INVERSE : CALL 15872: FOR I = 1 TO 3500: NEXT I
 2580  FOR I = 20 TO 12 STEP  - 1: HTAB 1: VTAB I: PRINT "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@";: NEXT I: VTAB 1: HTAB 1: PRINT "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@";
 2590  FOR I = 2 TO 12: VTAB I: HTAB 1: PRINT "@";: HTAB 40: PRINT "@";: NEXT I
 2600  NORMAL 
 2610  POKE 34,20: HOME 
 2620  FOR I = 768 TO 791: READ A: POKE I,A: NEXT I
 2630  DATA 1,1,173,48,192,136,208,5,206,1,3,240,9,202,208,245,174,0,3,76,2,3,96,0
 2640 Y = 3
 2650  COLOR= 2: FOR I = Y - 1 TO Y + 20: HLIN 1,38 AT I: NEXT I: COLOR= 0: GOSUB 2760
 2660  COLOR= 4: FOR I = 14 TO 37: VLIN 23,37 AT I: NEXT I
 2670  COLOR= 0: GOSUB 2810
 2680  GOSUB 2870
 2690  POKE 49232,0: POKE 49235,0: POKE 49236,0: POKE 49238,0
 2700  COLOR= 12: GOSUB 2840
 2710  FOR I = 0 TO 39
 2720  COLOR=  INT ( RND (1) * 4) + 1
 2730  PLOT 0,I: PLOT 39,39 - I: PLOT 39 - I,0: PLOT I,39
 2740  NEXT I
 2750  GOTO 3400
 2760  HLIN 1,2 AT Y - 1: HLIN 13,17 AT Y - 1: HLIN 26,27 AT Y - 1: PLOT 31,Y - 1: PLOT 38,Y - 1: PLOT 1,Y: PLOT 16,Y: PLOT 27,Y: PLOT 1,Y + 1: PLOT 27,Y + 1: PLOT 6,Y + 3: HLIN 5,9 AT Y + 4: HLIN 35,36 AT Y + 4
 2770  PLOT 38,Y + 4: HLIN 5,10 AT Y + 5: HLIN 35,38 AT Y + 5: HLIN 7,10 AT Y + 6: HLIN 37,38 AT Y + 6: PLOT 10,Y + 7: PLOT 38,Y + 7: PLOT 1,Y + 8: PLOT 38,Y + 8
 2780  HLIN 1,2 AT Y + 9: PLOT 38,Y + 9: HLIN 1,3 AT Y + 10: HLIN 35,38 AT Y + 10: HLIN 1,5 AT Y + 11: HLIN 34,38 AT Y + 11: HLIN 1,6 AT Y + 12: HLIN 34,38 AT Y + 12: HLIN 1,6 AT Y + 13: PLOT 34,Y + 13: HLIN 1,4 AT Y + 14
 2790  PLOT 14,Y + 16: PLOT 27,Y + 16: PLOT 14,Y + 16: PLOT 27,Y + 16: PLOT 14,Y + 17: PLOT 27,Y + 17: HLIN 37,38 AT Y + 17: PLOT 14,Y + 18: HLIN 26,28 AT Y + 18: HLIN 33,38 AT Y + 18: PLOT 1,Y + 19: HLIN 6,38 AT Y + 19: HLIN 1,2 AT Y + 20: HLIN 5,38 AT Y                          + 20
 2800  RETURN 
 2810  VLIN 26,28 AT 17: VLIN 32,34 AT 17: PLOT 19,23: PLOT 19,37: VLIN 36,37 AT 20: VLIN 31,37 AT 21: VLIN 23,29 AT 23: VLIN 31,37 AT 25: VLIN 30,37 AT 26: VLIN 26,37 AT 27: VLIN 26,37 AT 31: VLIN 26,28 AT 35
 2820  VLIN 32,34 AT 35: VLIN 26,28 AT 36: VLIN 32,34 AT 36: VLIN 26,34 AT 37
 2830  RETURN 
 2840  VLIN 24,36 AT 15: HLIN 16,18 AT 24: HLIN 16,18 AT 30: HLIN 16,18 AT 36: VLIN 24,29 AT 21: PLOT 22,30: VLIN 31,36 AT 23: PLOT 24,30: VLIN 24,29 AT 25: HLIN 27,31 AT 24: VLIN 25,36 AT 29: VLIN 25,36 AT 33: HLIN 34,36 AT 36
 2850  HLIN 33,36 AT 24: VLIN 25,29 AT 19: VLIN 31,35 AT 19: HLIN 34,35 AT 30
 2860  RETURN 
 2870  COLOR= 9: HLIN 3,5 AT 29: VLIN 30,33 AT 4: COLOR= 1: HLIN 6,7 AT 29: PLOT 8,30: PLOT 7,31: PLOT 6,32: HLIN 6,8 AT 33: COLOR= 12: HLIN 10,11 AT 29: VLIN 30,32 AT 9: HLIN 10,11 AT 33
 2880  RETURN 
 2890  HLIN 4,8 AT Y: HLIN 10,11 AT Y: HLIN 19,21 AT Y: HLIN 23,24 AT Y: PLOT 29,Y: HLIN 33,36 AT Y
 2900  RETURN 
 2910  HLIN 3,9 AT Y + 1: HLIN 11,12 AT Y + 1: HLIN 18,22 AT Y + 1: HLIN 24,25 AT Y + 1: HLIN 29,30 AT Y + 1: HLIN 32,37 AT Y + 1
 2920  RETURN 
 2930  HLIN 3,4 AT Y + 2: HLIN 8,9 AT Y + 2: HLIN 11,15 AT Y + 2: HLIN 18,19 AT Y + 2: PLOT 22,Y + 2: HLIN 24,25 AT Y + 2: HLIN 29,30 AT Y + 2: HLIN 32,34 AT Y + 2: PLOT 37,Y + 2
 2940  RETURN 
 2950  HLIN 2,3 AT Y + 3: HLIN 11,13 AT Y + 3: HLIN 15,16 AT Y + 3: PLOT 18,Y + 3: PLOT 22,Y + 3: HLIN 25,26 AT Y + 3: HLIN 29,30 AT Y + 3: HLIN 32,33 AT Y + 3
 2960  RETURN 
 2970  HLIN 2,3 AT Y + 4: HLIN 12,13 AT Y + 4: HLIN 15,16 AT Y + 4: PLOT 18,Y + 4: HLIN 22,23 AT Y + 4: HLIN 25,26 AT Y + 4: HLIN 28,29 AT Y + 4: HLIN 32,33 AT Y + 4
 2980  RETURN 
 2990  HLIN 2,3 AT Y + 5: PLOT 12,Y + 5: PLOT 16,Y + 5: PLOT 18,Y + 5: PLOT 23,Y + 5: HLIN 25,26 AT Y + 5: HLIN 28,29 AT Y + 5: HLIN 31,32 AT Y + 5
 3000  RETURN 
 3010  HLIN 2,3 AT Y + 6: PLOT 12,Y + 6: PLOT 16,Y + 6: PLOT 18,Y + 6: PLOT 23,Y + 6: HLIN 25,26 AT Y + 6: PLOT 28,Y + 6: HLIN 31,32 AT Y + 6
 3020  RETURN 
 3030  HLIN 3,5 AT Y + 7: PLOT 12,Y + 7: PLOT 16,Y + 7: HLIN 18,19 AT Y + 7: HLIN 22,23 AT Y + 7: HLIN 25,26 AT Y + 7: PLOT 28,Y + 7: HLIN 30,35 AT Y + 7
 3040  RETURN 
 3050  HLIN 4,8 AT Y + 8: PLOT 12,Y + 8: PLOT 16,Y + 8: HLIN 18,19 AT Y + 8: HLIN 21,23 AT Y + 8: HLIN 25,28 AT Y + 8: HLIN 30,36 AT Y + 8
 3060  RETURN 
 3070  HLIN 6,9 AT Y + 9: PLOT 12,Y + 9: PLOT 16,Y + 9: HLIN 18,23 AT Y + 9: HLIN 25,27 AT Y + 9: HLIN 30,33 AT Y + 9
 3080  RETURN 
 3090  HLIN 8,10 AT Y + 10: HLIN 12,13 AT Y + 10: PLOT 16,Y + 10: PLOT 18,Y + 10: PLOT 23,Y + 10: HLIN 25,28 AT Y + 10: HLIN 31,32 AT Y + 10
 3100  RETURN 
 3110  HLIN 9,10 AT Y + 11: HLIN 12,13 AT Y + 11: PLOT 16,Y + 11: PLOT 18,Y + 11: PLOT 23,Y + 11: HLIN 25,26 AT Y + 11: HLIN 28,29 AT Y + 11: PLOT 31,Y + 11
 3120  RETURN 
 3130  HLIN 9,10 AT Y + 12: HLIN 12,13 AT Y + 12: HLIN 15,16 AT Y + 12: HLIN 18,19 AT Y + 12: PLOT 23,Y + 12: HLIN 25,26 AT Y + 12: HLIN 28,29 AT Y + 12: PLOT 31,Y + 12
 3140  RETURN 
 3150  HLIN 9,10 AT Y + 13: HLIN 12,13 AT Y + 13: HLIN 15,16 AT Y + 13: PLOT 19,Y + 13: PLOT 23,Y + 13: HLIN 25,26 AT Y + 13: HLIN 28,29 AT Y + 13: HLIN 31,32 AT Y + 13
 3160  RETURN 
 3170  HLIN 8,9 AT Y + 14: HLIN 12,13 AT Y + 14: HLIN 16,17 AT Y + 14: HLIN 19,20 AT Y + 14: HLIN 22,23 AT Y + 14: HLIN 25,26 AT Y + 14: HLIN 28,29 AT Y + 14: HLIN 31,32 AT Y + 14: HLIN 36,37 AT Y + 14
 3180  RETURN 
 3190  HLIN 7,9 AT Y + 15: HLIN 11,12 AT Y + 15: HLIN 16,17 AT Y + 15: HLIN 19,20 AT Y + 15: PLOT 22,Y + 15: PLOT 25,Y + 15: PLOT 29,Y + 15: HLIN 32,37 AT Y + 15
 3200  RETURN 
 3210  HLIN 2,3 AT Y + 16: HLIN 5,8 AT Y + 16: HLIN 11,12 AT Y + 16: HLIN 16,17 AT Y + 16: PLOT 20,Y + 16: PLOT 22,Y + 16: HLIN 24,25 AT Y + 16: HLIN 29,30 AT Y + 16: HLIN 33,35 AT Y + 16
 3220  RETURN 
 3230  HLIN 2,7 AT Y + 17: HLIN 10,12 AT Y + 17: HLIN 16,18 AT Y + 17: PLOT 20,Y + 17: PLOT 22,Y + 17: PLOT 24,Y + 17: HLIN 30,31 AT Y + 17
 3240  RETURN 
 3250  HLIN 3,4 AT Y + 18
 3260  RETURN 
 3270  COLOR= 0: PLOT X + 8,Y: PLOT X + 7,Y + 1: PLOT X + 6,Y + 2: PLOT X + 5,Y + 3: PLOT X + 8,Y + 3: PLOT X + 9,Y + 2: PLOT X + 9,Y + 1: FOR I = Y + 4 TO Y + 20: HLIN X,X + 11 AT I: NEXT I
 3280  COLOR= 2: HLIN 3,4 AT 23: HLIN 2,5 AT 22
 3290  COLOR= 12: PLOT X + 8,Y + 1: HLIN X + 7,X + 8 AT Y + 2: HLIN X + 6,X + 7 AT Y + 3: PLOT X + 6,Y + 4: HLIN X + 3,X + 4 AT Y + 5: HLIN X + 8,X + 9 AT Y + 5: HLIN X + 2,X + 10 AT Y + 6: HLIN X + 2,X + 9 AT Y + 7
 3300  COLOR= 13: HLIN X + 1,X + 8 AT Y + 8: HLIN X + 1,X + 7 AT Y + 9: HLIN X + 1,X + 7 AT Y + 10
 3310  COLOR= 9: HLIN X + 1,X + 7 AT Y + 11: HLIN X + 1,X + 8 AT Y + 12: HLIN X + 1,X + 8 AT Y + 13
 3320  COLOR= 3: HLIN X + 1,X + 9 AT Y + 14: HLIN X + 2,X + 10 AT Y + 15: HLIN X + 2,X + 10 AT Y + 16
 3330  COLOR= 6: HLIN X + 2,X + 10 AT Y + 17: HLIN X + 3,X + 9 AT Y + 18: HLIN X + 4,X + 5 AT Y + 19: HLIN X + 7,X + 8 AT Y + 19
 3340  FOR I = 1 TO 6: POKE 768,159: POKE 769,55: CALL 770: POKE 768,200: POKE 769,50: CALL 770: NEXT I
 3350  RETURN 
 3360  COLOR= 0: FOR I = Y + 4 TO Y + 20: HLIN X,X + 10 AT I: NEXT I
 3370  COLOR= 2: HLIN 3,4 AT 23: HLIN 2,5 AT 22: HLIN 6,13 AT 21: HLIN 8,9 AT 20: HLIN 9,10 AT 19: PLOT 10,18
 3380  COLOR= 15: HLIN 10,11 AT 20: PLOT 11,19
 3390  RETURN 
 3400 P$ = "[SnakeBYTE]":PX = 1:PY = 21:PD = 1: GOSUB 3600:P$ = "Craig Bower":PX = 1:PY = 22: GOSUB 3600
 3410 P$ = "Oct 29/91":PX = 32:PY = 21: GOSUB 3600:P$ = "Remix 2005":PX = 31:PY = 22: GOSUB 3600:P$ = "http://www.turbo-2.com/apple":PX = 7:PY = 24: GOSUB 3600
 3420 P$ = "Press any key":PX = 15:PY = 22: GOSUB 3600
 3430 C = 9: POKE  - 16368,0
 3440  COLOR= C: FOR I = 1 TO 19
 3450  GOTO 3470
 3460  ON I GOSUB 2890,2910,2930,2950,2970,2990,3010,3030,3050,3070,3090,3110,3130,3150,3170,3190,3210,3230,3250
 3470  ON I GOSUB 2890,2930,2970,2910,3010,2950,3050,2990,3090,3030,3130,3070,3170,3110,3210,3150,3250,3190,3230
 3480  IF  PEEK ( - 16384) > 128 THEN 3580
 3490  POKE 768,6 * I: POKE 769,2: CALL 770
 3500  NEXT I
 3510 C = C + 1
 3520  IF C = 0 OR C = 2 OR C = 10 OR C = 11 OR C = 14 OR C = 15 OR C = 8 THEN C = C + 1: IF C = 11 THEN C = C + 1
 3530  IF C > 15 THEN C = Y:X = 2:Y = 18: GOSUB 3270: GOSUB 3360:Y = C:C = 0: GOSUB 2870
 3540  FOR I = 1 TO 350
 3550  IF  PEEK ( - 16384) > 128 THEN 3580
 3560  NEXT I
 3570  GOTO 3440
 3580  GET A$: POKE  - 16368,0
 3590  GOTO 3650
 3600 PD = 3
 3610  FOR I = 1 TO  LEN (P$): VTAB PY: HTAB PX - 1 + I: PRINT  MID$ (P$,I,1);
 3620 PS =  ASC ( MID$ (P$,I,1)): POKE 768,PS: POKE 769,PD: CALL 770
 3630  NEXT I
 3640  RETURN 
 3650  HOME : GOTO 3670
 3660  FOR I = 1 TO  LEN (P$): VTAB PY: HTAB PX + (I - 1): INVERSE : PRINT " ";: POKE 768,2: POKE 769,PD: CALL 770: NORMAL : VTAB PY: HTAB PX + (I - 1): PRINT  MID$ (P$,I,1);: NEXT I: RETURN 
 3670 FL = 0
 3680 FL = 0
 3690 X = 0:C = 6
 3700  COLOR= C: PLOT 39 - X,0: PLOT X,39: PLOT 39,39 - X: PLOT 0,X
 3710 X = X + 1: IF X = 9 THEN C = 1
 3720  IF X = 19 THEN C = 6
 3730  IF X > 39 THEN 3750
 3740  GOTO 3700
 3750  COLOR= 6: HLIN 0,39 AT 0: FOR I = 1 TO 10:P =  PEEK ( - 16336): NEXT I: VLIN 0,39 AT 0: FOR I = 1 TO 10:P =  PEEK ( - 16336): NEXT I: HLIN 0,39 AT 39: FOR I = 1 TO 10:P =  PEEK ( - 16336): NEXT I: VLIN 0,39 AT 39
 3760  GOSUB 5000
 3770 PX = 32:PY = 21:P$ = "Apples:00": GOSUB 3660:PX = 32:PY = 22:P$ = "Snakes:00": GOSUB 3660::PX = 32:PY = 23::P$ = " Level:00": GOSUB 3660
 3780 P$ = "[SnakeBYTE]":PX = 1:PY = 21: GOSUB 3660
 3790 B = 1:SN = 3:NA = 10:CA = 10:PF = 0:EE = 0
 3800  GOSUB 4220
 3810  GOSUB 5000
 3820 P$ = "                     ":PX = 5:PY = 23: GOSUB 3660
 3830 SC = 0: VTAB 21: HTAB 19: PRINT "Score:00000"
 3840 L = 10:X = 20:Y = 38:XX = 20:YY = 38
 3850  GOSUB 1490: GOSUB 1110
 3860  GOSUB 1190
 3870 DI = 1:C = 0
 3880  COLOR= 1: PLOT X,Y
 3890  IF DI = 1 THEN Y = Y - 1
 3900  IF DI = 3 THEN Y = Y + 1
 3910  IF DI = 2 THEN X = X + 1
 3920  IF DI = 4 THEN X = X - 1
 3930  IF  SCRN( X,Y) <  > 0 THEN  GOSUB 630
 3940  COLOR= DI: PLOT X,Y: IF C < L THEN C = C + 1:P =  PEEK ( - 16336)
 3950 P =  PEEK ( - 16336):SC = SC + .1
 3960  IF C = L THEN  GOSUB 560
 3970 PP = PP + 1: IF PP > 150 THEN  GOSUB 1040
 3980  IF  PEEK ( - 16287) > 127 THEN A$ =  CHR$ (8): GOTO 4060
 3990  IF  PEEK ( - 16286) > 127 THEN A$ =  CHR$ (21): GOTO 4060
 4000  IF  PEEK ( - 16384) < 128 THEN 3890
 4010  GET A$
 4020 IP =  INT (PP / 3.75)
 4030  IF IP < 2 THEN IP = 1
 4040  POKE 768,255 - (IP * 3): POKE 769,4: CALL 770
 4050  COLOR= 12: VLIN 40 - IP,39 AT 39: COLOR= DI
 4060  IF A$ =  CHR$ (8) THEN DI = DI - 1: IF DI < 1 THEN DI = 4
 4070  IF A$ = "0" THEN SC = SC + 100
 4080  IF A$ =  CHR$ (21) THEN DI = DI + 1: IF DI > 4 THEN DI = 1
 4090  IF A$ = "@" THEN  POKE 768,5: POKE 769,10: CALL 770:CA = CA - 1: GOSUB 1110
 4100  IF A$ = "L" THEN  POKE 768,5: POKE 769,10: CALL 770: POKE 768,10: POKE 769,10: CALL 770: VTAB 23: HTAB 39: GET ZZ$: PRINT ZZ$;: GET ZX$: PRINT ZX$;:BB$ = ZZ$ + ZX$:B =  VAL (BB$): COLOR= 0: GOTO 3810
 4110  IF A$ = "#" THEN SN = SN + 1: POKE 768,10: POKE 769,10: CALL 770: POKE 768,5: POKE 769,10: CALL 770: GOSUB 1110
 4120  IF A$ =  CHR$ (27) THEN  GOSUB 2500
 4130  COLOR= DI: PLOT X,Y
 4140  GOTO 3890
 4150 SC = SC + 100: VTAB 21: HTAB 25
 4160  IF SC < 10 THEN  PRINT "0000";SC: RETURN 
 4170  IF SC < 100 THEN  PRINT "000";SC: RETURN 
 4180  IF SC < 1000 THEN  PRINT "00";SC: RETURN 
 4190  IF SC < 10000 THEN  PRINT "0";SC: RETURN 
 4200  IF SC > 10000 THEN  PRINT SC;" ";: RETURN 
 4210  RETURN 
 4220 FL = 1
 4230 X = 20:Y = 38:XX = 20:YY = 38:L = 10:DI = 1:C = 0:SC = 0
 4240 P$ = "Press any key to play":PX = 5:PY = 23: GOSUB 3660
 4250  COLOR= 5: PLOT 20,39
 4260 PY = 21:PX = 19:P$ = "(C)2005 CRB": GOSUB 3660:P$ = "Score:00000": GOSUB 3660
 4270  COLOR= 9:Q =  INT ( RND (1) * 39) + 1:W =  INT ( RND (1) * 39) + 1: IF  SCRN( Q,W) <  > 0 THEN 4270
 4280  IF Q = X OR Q = XX THEN 4270
 4290  IF FL = 1 THEN FL = 0: GOTO 4310
 4300  IF W = Y OR Y = YY THEN 4270
 4310  PLOT Q,W:AX = Q:AY = W
 4320  COLOR= DI: PLOT X,Y
 4330  IF DI = 1 THEN Y = Y - 1
 4340  IF DI = 3 THEN Y = Y + 1
 4350  IF DI = 2 THEN X = X + 1
 4360  IF DI = 4 THEN X = X - 1
 4370  IF  SCRN( X,Y) <  > 0 THEN 4560
 4380  COLOR= DI: PLOT X,Y: IF C < L THEN C = C + 1:P =  PEEK ( - 16336)
 4390 P =  PEEK ( - 16336)
 4400  IF C = L THEN  GOSUB 4500
 4410  IF  PEEK ( - 16287) > 127 THEN  RETURN 
 4420  IF  PEEK ( - 16286) > 127 THEN  RETURN 
 4430  IF  PEEK ( - 16384) > 128 THEN  GET A$: RETURN 
 4440  IF AX > X THEN DI = 2
 4450  IF AX < X THEN DI = 4
 4460  IF AY > Y THEN DI = 3
 4470  IF AY < Y THEN DI = 1
 4480  COLOR= DI: PLOT X,Y
 4490  GOTO 4330
 4500 D =  SCRN( XX,YY): COLOR= 0: PLOT XX,YY
 4510  IF D = 1 THEN YY = YY - 1
 4520  IF D = 2 THEN XX = XX + 1
 4530  IF D = 3 THEN YY = YY + 1
 4540  IF D = 4 THEN XX = XX - 1
 4550  RETURN 
 4560 T =  SCRN( X,Y): COLOR= DI: PLOT X,Y
 4570  IF T <  > 9 THEN  COLOR= 6: HLIN 0,39 AT 0: HLIN 0,39 AT 39: VLIN 0,39 AT 0: VLIN 0,39 AT 39: GOSUB 4710
 4580  IF T <  > 9 AND FL = 1 THEN  RETURN 
 4590  IF T <  > 9 THEN  GOTO 4220
 4600  FOR I = 1 TO 10:P =  PEEK ( - 16336): NEXT I
 4610  IF C = L THEN  GOSUB 4500
 4620 Q =  INT ( RND (1) * 39) + 1:W =  INT ( RND (1) * 39) + 1: IF  SCRN( Q,W) <  > 0 THEN 4620
 4630  COLOR= 9: PLOT Q,W:AX = Q:AY = W
 4640 L = L + 5: GOSUB 4150
 4650  IF SC > ZR THEN ZR = SC: VTAB 21: HTAB 13: PRINT ZR;" ";
 4660  IF X < AX AND Y < AY AND DI = 4 THEN DI = 3: GOTO 4320
 4670  IF X > AX AND Y < AY AND DI = 2 THEN DI = 3: GOTO 4320
 4680  IF X < AX AND Y > AY AND DI = 4 THEN DI = 1: GOTO 4320
 4690  IF X > AX AND Y > AY AND DI = 2 THEN DI = 1: GOTO 4320
 4700  GOTO 4320
 4710  CALL  - 1059: GOSUB 5000
 4720  POKE  - 16368,0:Y = 3:C =  INT ( RND (1) * 100) + 1: IF C > 90 THEN  CALL 16023:XD = 1: GOTO 4850
 4730  COLOR= 2: FOR I = Y - 1 TO Y + 20: HLIN 1,38 AT I: NEXT I: COLOR= 0: GOSUB 2760
 4740  COLOR= 4: FOR I = 14 TO 37: VLIN 23,37 AT I: NEXT I: COLOR= 0: GOSUB 2810: GOSUB 2870
 4750  GOSUB 2840
 4760 C = 9: COLOR= C
 4770  FOR I = 1 TO 19
 4780  ON I GOSUB 2890,2930,2970,3010,3050,3090,3130,3170,3210,3250,3230,3190,3150,3110,3070,3030,2990,2950,2910
 4790  POKE 768,5: POKE 769,PD: CALL 770
 4800  IF SC > 1195 THEN C =  INT ( RND (1) * 15) + 1
 4810  IF C = 2 OR C = 5 OR C = 10 THEN C = C + 1
 4820  COLOR= C
 4830  NEXT I
 4840 XD = 1: IF SC > 999 AND SC < 1300 THEN X = 2:Y = 18: COLOR= 0: HLIN 10,11 AT 29: GOSUB 3290
 4850  IF  PEEK ( - 16384) > 128 THEN  GET A$:FL = 1: POKE  - 16368,0: GOTO 4910
 4860  IF  PEEK ( - 16286) > 127 THEN FL = 1: GOTO 4910
 4870  IF  PEEK ( - 16287) > 127 THEN FL = 1: GOTO 4910
 4880  COLOR=  INT ( RND (1) * 15) + 1: HLIN 0,39 AT 0: HLIN 0,39 AT 39: VLIN 0,39 AT 0: VLIN 0,39 AT 39
 4890  IF SC > 1495 THEN  POKE 768,XD * 2: POKE 769,3: CALL 770: POKE 768,255 - (XD * 2): POKE 769,3: CALL 770
 4900 XD = XD + 1: IF XD < 95 THEN 4850
 4910  COLOR= 6: FOR I = 39 TO 0 STEP  - 1: HLIN 0,39 AT I: NEXT I: COLOR= 0: FOR I = 38 TO 1 STEP  - 1: HLIN 1,38 AT I: NEXT I
 4920  RETURN 
 4930 PD = 2: NORMAL : HOME :PX = 1:PY = 21:P$ = "[SnakeBYTE] >> Error #":P$ = P$ +  STR$ ( PEEK (222)):P$ = P$ + "    ": GOSUB 3610
 4940  POKE  - 16368,0
 4950 PX = 3:PY = 23:P$ = "OA - ReBoot, CA - ReRun, ESC - Exits": GOSUB 3610
 4960  IF  PEEK ( - 16286) > 128 THEN  RUN 
 4970  IF  PEEK ( - 16384) > 127 THEN  GET A$: IF A$ =  CHR$ (27) THEN  TEXT : CALL 16006: HOME : END 
 4980  IF  PEEK ( - 16287) < 128 THEN 4960
 4990  CALL  - 1370
 5000  COLOR= 6
 5010 GH = GH + 1
 5020  FOR I = 1 TO 38: IF GH =  > 15 THEN  COLOR=  INT ( RND (1) * 4) + 1
 5030  HLIN 1,38 AT I: NEXT I: COLOR= 0: FOR I = 1 TO 38: HLIN 1,38 AT I: NEXT I
 5040  IF GH =  > 15 THEN GH = 1
 5050  RETURN 


Note: SBX has embedded Picture Data and ML Routines to display the "GAME OVER"
and "turbo-2.com presents" pictures onto the Lo-Res screen. Consequently if
you wish to modify the Applesoft portion of "SBX" you must be aware that
changes will absolutely clobber these routines and their picture data.
With careful planning and a few BSAVE/BLOADs, you can remove and reinstall
the ML routines at the proper location after modifying the Applesoft component.
Send an email to >> omni@turbo-2.com << if you must know how.

These ML Routines reside at the following memory locations:

+----------------------------------------------------+
| $3E00 - $3E70 - "t-2.c presents" quickdraw routine |
| $3E97 - $3EDB - "Game over" quickdraw routine      |
| $4000 - $43FF - "Game over" picture data           |
| $4400 - $47FF - "t-2.c presents" picture data      |
+----------------------------------------------------+

Provided here for ease of understanding are the disassemblies of these routines.
(Disassembled with a IIgs, thus the long-hand version of memory locations.)

]CALL -151

*AF.B0		; Applesoft pointer to end of file
		; for inclusion of the ML routines during a "SAVE filename"

00/00AF:FF	; Points to address $47FF as end of "Applesoft" file in memory
00/00B0:47	; (at end of last picture data locn)


*3E00L	;"turbo-2.com presents" quickdraw routine [$3E00 - $3E70]
 
00/3E00: 20 72 3E     JSR 3E72		; Set Reset Vector in DOS 3.3 version
00/3E03: 20 58 FC     JSR FC58		; Monitor Routine, equalling HOME command
00/3E06: A9 00        LDA #00		; Zero the Accumulator
00/3E08: 85 FE        STA FE		; Store in Zero page (beginning line #)
00/3E0A: A5 FE        LDA FE		; Begin GBASCALC loop w/ contents of $FE
00/3E0C: 20 47 F8     JSR F847		; JSR to GBASCALC (lines $00 - $14)
00/3E0F: A9 00        LDA #00		; LDA with 00 - black for LoRes page 1
00/3E11: A8           TAY 		; Zero the "Y" Reg w/out loading it
00/3E12: 91 26        STA (26),Y	; "00" at GBASCALC computed location
00/3E14: C8           INY 		; Increment ",Y" indexed store to ...
00/3E15: C0 28        CPY #28		; the width of the LoRes page 1
00/3E17: D0 F9        BNE 3E12 {-07}	; End of line? No? Back again monkey!
00/3E19: E6 FE        INC FE		; Inc $FE to indicate next line down
00/3E1B: A4 FE        LDY FE		; Then we check $FE to see if we are ...
00/3E1D: C0 14        CPY #14		; at the bottom of the Graphics Screen?
00/3E1F: D0 E9        BNE 3E0A {-17}	; No? Go back and do next line!

00/3E21: 8D 50 C0     STA C050		; Text mode off, graphics enabled
00/3E24: 8D 53 C0     STA C053		; Mixed mode on, text/graphics
00/3E27: 8D 54 C0     STA C054		; Page 2 off, selects Page 1
00/3E2A: 8D 56 C0     STA C056		; Hi-Res mode off, selects LoRes Graphics
 
00/3E2D: A9 14        LDA #14		; LDA with $14 - then store it
00/3E2F: 85 22        STA 22		; to set bottom 4-lines as a scroll area

00/3E31: A9 00        LDA #00		; Zero the Accumulator again
00/3E33: 85 FE        STA FE		; Store it at Zero Page locn $FE again
00/3E35: A8           TAY 		; Zero the Y-Reg again
00/3E36: A5 FE        LDA FE		; Hmmn looks like we are going to ...
00/3E38: 20 47 F8     JSR F847		; jump to subroutine GBASCALC again
00/3E3B: A5 26        LDA 26		; Load GBAS addr (LO) in from ZP $26
00/3E3D: 85 FA        STA FA		; Deposit it into offset (LO) location
00/3E3F: A5 27        LDA 27		; Load GBAS addr (HI) in from ZP $27
00/3E41: 69 40        ADC #40		; Add the offset to beginning of pic
00/3E43: 85 FB        STA FB		; Plunk into offset (HI) locn ZP $FB
00/3E45: B1 FA        LDA (FA),Y	; Grab data from offset locn ($4400)
00/3E47: 91 26        STA (26),Y	; Indirect,Y Indexed store to LoRes
00/3E49: AD 30 C0     LDA C030		; make some noise with the speaker
00/3E4C: C8           INY 		; Inc Y-Reg to do next spot on the line
00/3E4D: C0 28        CPY #28		; Are we at width of screen yet?
00/3E4F: D0 F4        BNE 3E45 {-0C}	; No? - Go back and finish the line
00/3E51: A9 00        LDA #00		; Zero the Acc again
00/3E53: AA           TAX 		; Zero the X-Reg
 
00/3E54: A8           TAY 		; Zero the Y-Reg
00/3E55: AD 30 C0     LDA C030		; Click the speaker, more commotion
00/3E58: C8           INY 		; Increment the Y-Reg (time delay) ...
00/3E59: C0 45        CPY #45		; $45 odd times, to get desired sound
00/3E5B: D0 FB        BNE 3E58 {-05}	; back if Y-Reg not at $45
00/3E5D: A0 00        LDY #00		; ReZero the Y-Reg for next time through
00/3E5F: E8           INX 		; Inc the X-Reg for retapping speaker
00/3E60: E0 25        CPX #25		; Of course, do it $25 / desired sound
00/3E62: D0 F1        BNE 3E55 {-0F}	; Not done $25 times? keep doing it
00/3E64: E6 FE        INC FE		; Finally back to Inc our Line counter
00/3E66: A9 00        LDA #00		; Zero the Acc again :)
00/3E68: AA           TAX 		; Zero X-Reg
00/3E69: A8           TAY 		; Zero Y-Reg begin line 2, position $00
00/3E6A: A5 FE        LDA FE		; Check our position on the page ...
00/3E6C: C9 18        CMP #18		; reached the bottom of the display?
00/3E6E: D0 C6        BNE 3E36 {-3A}	; No? - go back and do next line down
00/3E70: 60           RTS 		; Whew, finished, that was quick!

00/3E72: 20 39 FB     JSR FB39		; DOS 3.3 ver, where the RESET Vector
00/3E75: 60           RTS 		; gets setup. ProDOS it does "TEXT/RTS"

00/3E86: 60           RTS		; DOS 3.3 version, RESET vector is
					; restored to power-on default here.
					; As you see, under ProDOS, it simply
					; returns doing nothing.


*3E97L	; "GAME OVER" quickdraw routine [$3E97 - $3EDB]
 
00/3E97: A9 00        LDA #00		; Zero our lil friend, the Acc
00/3E99: 85 FA        STA FA		; Wasted Bytes, zeroing offset (LO)
00/3E9B: 85 FB        STA FB		; Wasted Bytes, zeroing offset (HI)
00/3E9D: 85 FC        STA FC		; Zero Y-Reg width offset location
00/3E9F: 85 FE        STA FE		; Zero GBASCALC line # ZP location
00/3EA1: A5 FE        LDA FE		; Load the line # to be calculated,
00/3EA3: 20 47 F8     JSR F847		; with GBASCALC - Surprise, surprise
00/3EA6: A5 26        LDA 26		; Grab the data calculated (addr LO)
00/3EA8: 85 FA        STA FA		; Store it in offset location (LO)
00/3EAA: A5 27        LDA 27		; Grab the data calculated (addr HI)
00/3EAC: 69 3C        ADC #3C		; Add the offset to it and ...
00/3EAE: 85 FB        STA FB		; Drop it into the offset locn (HI)
00/3EB0: A4 FC        LDY FC		; Load Y-Reg / width offset storage
00/3EB2: B1 FA        LDA (FA),Y	; Load offset picture data $4000 up
00/3EB4: 91 26        STA (26),Y	; Store it in the LoRes page $400 up
00/3EB6: E6 FE        INC FE		; drop down a line in our display
00/3EB8: AD 30 C0     LDA C030		; clicky speaker
00/3EBB: A5 FE        LDA FE		; Check to see if we are finished
00/3EBD: C9 14        CMP #14		; the first vertical line?
00/3EBF: D0 E0        BNE 3EA1 {-20}	; No? go back and finish the line
 
00/3EC1: A9 00        LDA #00		; Zero the Acc again
00/3EC3: 85 FA        STA FA		; Zero our offset (LO) source locn
00/3EC5: 85 FB        STA FB		; Zero our offset (HI) source locn
00/3EC7: 85 FE        STA FE		; Back to line 1 for next GBASCALC
00/3EC9: E6 FC        INC FC		; move to the right in the index
00/3ECB: A2 00        LDX #00		; Zero X-Reg for some ...
00/3ECD: AD 30 C0     LDA C030		; funky speaker action
00/3ED0: E8           INX 		; increment X-Reg
00/3ED1: E0 FF        CPX #FF		; to 255 times through the speaker
00/3ED3: D0 F8        BNE 3ECD {-08}	; 255 yet?  No?  Go back, keep going.
00/3ED5: A5 FC        LDA FC		; Check our width (ZP location $FC)
00/3ED7: C9 28        CMP #28		; at width of screen yet?
00/3ED9: D0 C6        BNE 3EA1 {-3A}	; No?  Go back, do next vert line
00/3EDB: 60           RTS 		; Wow, done finally

 
*4000.4800	; "GAME OVER" picture data [$4000-$43FF]
		; "turbo-2.com presents" picture data [$4400-$47FF]